Advances in communications technology have enabled for a greater variety of and more convenient communications over data networks. Traditionally, the types of communications over data networks include web browsing, electronic mail, file transfers, and so forth. With the greater bandwidth available on data networks, real-time communications over data networks have also become increasingly popular, including electronic gaming, voice over packet data, streaming communications, and others.
A data network typically includes many components, including network terminals (referred to as clients), servers, routers, firewalls, and other network elements. The data network can include a public network (such as the Internet) and/or private networks (such as local area networks or wide area networks). Traditionally, a network terminal has connected to a data network using a wired connection (such as through a modem and telephone line, wired LAN connection, and the like). An increasingly popular form of connection of a network terminal to a data network is a wireless connection. Various standards have provided for such wireless connections, including wireless Ethernet (defined by the 802.11 standards from the Institute of Electrical and Electronics Engineers or IEEE).
A network protocol that defines packet-based communications over data networks includes the Internet Protocol (IP). One version of IP is IPv4, as described in Request for Comments (RFC) 791, entitled “Internet Protocol,” dated September 1981. Another version of IP is IPv6, as described in RFC 2460, entitled “Internet Protocol, Version 6 (IPv6) Specification,” dated December 1998. IP provides a network layer that defines packets for communicating data over a data network. Above the network layer is a transport layer to define interconnections between hosts. One example of a transport layer is a Transmission Control Protocol (TCP) layer. TCP is a connection-oriented, end-to-end protocol that provides for reliable inter-process communication between pairs of processes in host computers attached to communication networks.
Stateful intermediate devices, such as firewalls or network-address-translation (NAT) routers, are used in many networks to protect one domain from another domain, typically to protect users in a private network from a public network such as the Internet. A stateful intermediate device maintains states (such as TCP states) of the connection between network terminals. A firewall maintains the TCP state of each connection to protect against malicious use of a connection by unauthorized systems to prevent hacking activity such as port scans, topology mapping, and so forth. Also, maintaining states of a connection enables a firewall or other intermediate device to enforce TCP compliance.
Typically, a stateful intermediate device, such as a firewall, is designed to handle stationary clients in wireline networks. Normally, because of the reliable nature of wired connections, a client in a wireline environment does not lose a link between the client and an access device to a data network. However, in a wireless network, wireless devices may lose network connectivity at a relatively high rate. As a result, a TCP connection that involves a wireless device may become terminated without the graceful handshaking that is performed to terminate a TCP connection. Although the wireless device has lost its wireless link, any stateful intermediate device in the path of the TCP connection may still think that the connection between the wireless device and another endpoint is still established (albeit idle because no data is being exchanged). When the wireless device re-acquires the wireless link, the wireless device may attempt to establish another connection using the original source TCP port. When the new connection requests reaches the stateful intermediate device (which still thinks that the wireless device is associated with the original source TCP port), the stateful intermediate device considers the new connection request as violating TCP, and as a result, drops the connection request. The dropping of the connection request effectively denies access for the wireless device so that the user at the wireless device will not be able to obtain access of the data network until a timeout (usually on the order of 30 minutes to an hour) occurs in the stateful intermediate device to terminate the connection involving the wireless device.
As a result, users of wireless devices may experience unusually long periods of time during which they are unable to access the data network, even though the wireless devices have established wireless links.